<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en-US">

<!-- *************************** -->
<!-- BOILERPLATE STUFF, SKIP DOWN -->

<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1st November 2003), see www.w3.org" />
<title>Cobbler</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="copyright" content=
"(CC) Creative Commons Share Alike 3.0 | 2009</A>"/>
<meta name="font-size-adjustment" content="-2" />
<link rel="stylesheet" href="slidy.css" type="text/css"
media="screen, projection, print" />
<link rel="stylesheet" href="slidy.css" type="text/css"
media="screen, projection, print" />
<script src="slidy.js" type="text/javascript">
</script>
</head>
<body>

<div class="background">
</div>

<!-- *************************** -->
<!-- MORE BOILERPLATE, SKIP DOWN -->

<div class="background slanty">
<!-- slanty logo removed -->
</div>
<div class="slide cover title">
  <!-- hidden style graphics to ensure they are saved with other content -->
  <img class="hidden" src="../Slidy/bullet.png" alt="" />
  <img class="hidden" src="../Slidy/fold.gif" alt="" />
  <img class="hidden" src="../Slidy/unfold.gif" alt="" />
  <img class="hidden" src="../Slidy/fold-dim.gif" alt="" />
  <img class="hidden" src="../Slidy/nofold-dim.gif" alt="" />
  <img class="hidden" src="../Slidy/unfold-dim.gif" alt="" />
  <img class="hidden" src="../Slidy/bullet-fold.gif" alt="" />
  <img class="hidden" src="../Slidy/bullet-unfold.gif" alt="" />
  <img class="hidden" src="../Slidy/bullet-fold-dim.gif" alt="" />
  <img class="hidden" src="../Slidy/bullet-nofold-dim.gif" alt="" />
  <img class="hidden" src="../Slidy/bullet-unfold-dim.gif" alt="" />

<!-- *********************** -->
<!-- TITLE SCREEN            -->

Cobbler</br>

<p><a href="http://mdehaan.fedorapeople.org/">Michael DeHaan</a>,
&lt;<a href="mailto:mdehaan@redhat.com">mdehaan@redhat.com</a>&gt;<br />
<br />
<br />
<br />
<br /><em>Press space to continue...</em></p>
</div>

<!-- ********************** -->
<!-- BEGIN CONTENT          -->

<div class="slide">
About Cobbler
<ul>
<li>Project started ~2005</li>
<li>Goal #1: bring sysadmins together to create and share superior deployment technology</li>
<li>Goal #2: provide tools for both physical AND virtual deployments</li>
<li>Goal #3: embrace the unix philosophy; simple tools working together</li>
<li>it's an application</li>
<li>it's also a web service for applications</li>
</ul>
</div>

<div class="slide">
Who uses it?
<ul>
<li>A few examples: <A HREF="https://fedorahosted.org/cobbler/wiki/WhoUsesCobbler">Who Uses Cobbler</A></li>
<li>Hosting companies</li>
<li>University departments</li>
<li>Research grids/clusters</li>
<li>Government agencies</li>
<li>Applications:
  <ul>
  <li><A HREF="http://fedorahosted.org/spacewalk">Spacewalk/Satellite</A></li>
  <li><A HREF="http://ovirt.org">Ovirt.org</A></li>
  <li><A HREF="http://fedorahosted.org/beaker">Beaker</A></li>
  <li><A HREF="http://fedorahosted.org/genome">Genome</A></li>
  <li>Various in-house software</li>
  </ul>
</li>
</div>

<div class="slide">
Types of Installs That Cobbler Performs:
<ul>
<li>Netboot/PXE by MAC, IP, or menu</li>
<li>re-installs / upgrades of an existing Linux systems</li>
<li>network install ISO generation (PXE not required)</li>
<li>virtual machines -- kickstarts or images</li>
</ul>
</div>

<div class="slide">
Architectures supported (reinstalls & netboot):
<ul>
<li>x86 / x86_64</li>
<li>ppc / ppc64</li>
<li>ia64</li>
<li>s390 / s390x (requires Cobbler 1.5)</li>
</ul>
</div>

<div class="slide">
What Works?
<ul>
<li>
  Installation targets:
  <ul>
  <li>Red Hat Enterprise Linux</li>
  <li>Fedora</li>
  <li>CentOS, Scientific Linux</li>
  <li>OpenSuSE</li>
  <li>Debian (90% there)</li>
  <li>Ubuntu (90% there)</li>
  <li>Windows (virt, evolving)</li>
</ul>
<li>
  Server platforms:
  <ul>
  <li>Red Hat Enterprise Linux 4+</li>
  <li>any Fedora</li>
  <li>Debian (partial; packaging pending)</li>
  <li>OpenSuSE (partial; packaging pending)</li>
  </ul>
</li>
</ul>
</div>

<div class="slide">
Conceptual overview:
<ul>
<br/>
<IMG SRC="object_tree.png"/>
</div>

<div class="slide">
Details about Bare Metal Installs:
<ul>
<li>Cobbler manages your PXE tree for you</li>
<li>Built-in PXE boot loop prevention</li>
<li>Auto-generated PXE menus for "off the truck" deployment</li>
<li>"cobbler buildiso" for situations that can't do PXE (static/policy-driven)</li>
</ul>
</div>

<div class="slide">
Details about Reinstalls:
<ul>
<li>Suppose you don't have a PXE environment</li>
<li>You can reinstall a host over SSH</li>
<li>You can also perform upgrades this way</li>
<li>Works well with <A HREF="http://fedorahosted.org/func">Func</A></li>
</ul>
</div>

<div class="slide">
Details about Virtual Installs:
<ul>
<li>Uses a helper tool called "koan"</li>
<li>Virtualization parameters are centrally managed</li>
<li>Control over RAM, CPU, disk</li>
<li>Built in support for LVM volume groups</li>
<li>
   Choose your own adventure:
   <ul>
   <li>libvirt guests: Xen PV, FV, KVM</li>
   <li>non-libvirt:  VMware server, workstation, ESX (?)</li>
   </ul>
</li>
</div>

<div class="slide">
Need A Picture?
<br/>
<IMG SRC="code.png"/>
</div>


<div class="slide">
Power Features:
<ul>
<li>Cheetah Powered -- Open Ended Templating Engine On Steroids</li>
<li>Snippets</li>
<li>Integrated Yum Mirroring</li>
<li>Advanced Networking Configuration -- bonding, vlans</li>
<li>DHCP Management</li>
<li>DNS Management</li>
<li>Power Management</li>
<li>Configuration Management Hooks (puppet)</li>
<li>Built-in Lightweight CMS</li>
<li>BIOS/Firmware upgrades (ex: Dell, HP)</li>
<li>Remotely erase machines (DBAN)</li>
<li>Extensive anaconda monitoring features</li>
<li>Multi-server replication (picture: next slide)</li>
</ul>
</div>

<div class="slide">
<IMG SRC="replication.png"/>
</div>

<div class="slide">
Easy setup process:
<pre>
yum install cobbler
vim /etc/cobbler/settings
cobbler check
vim /etc/cobbler/settings # maybe
</pre>
</div>


<div class="slide">
Command line access is simple:
Setup:
<pre>
cobbler import --name=RHEL5 --mirror=/mnt/dvd
cobbler import --name=Fedora --path=rsync://foo
</pre>
Create and edit distros:
<pre>
cobbler distro edit --name=RHEL5-i386 --kopts="noapic x=y z=4"
</pre>
Define some roles for your systems to fill:
<pre>
cobbler profile edit --name=RHEL5-i386 --kickstart=/path/to/template.ks --ksmeta="somevar=1 othervar=2" 
cobbler profile copy --name=RHEL5-i386 --newname=webservers
cobbler profile edit --name=webservers --virt-ram=2048 
</pre>
Map hardware to those roles:
<pre>
cobbler system add --name=foosball --mac=AA:BB:CC:DD:EE:FF --profile=RHEL5-i386
cobbler system edit --name=foosball --ip=192.168.10.50 # DHCP reservations!
cobbler system edit --name=foosball --dns-name=foosball # DNS setup
</pre>
Reinstall systems you have defined:
<pre>
cobbler system edit --name=foosball --netboot-enabled=1 
cobbler system reboot --name=foosball
</pre>
Also help manage updates as they relate to installation and post-installation:
<pre>
cobbler repo add --name=f10-updates --mirror=http://foo
cobbler reposync
cobbler profile edit --name=desktops --repos="f10-updates"
</pre>

</div>

<div class="slide">
Want to install a VM?  Everything is easy, since it's centrally managed
<pre>
koan --list-profiles [--server=cobbler.example.org]
koan --virt --profile=foo [...]
koan --virt --system=bar [...]
</pre>
Reinstall a physical box?
<pre>
koan --replace-self --system=bar
</pre>
Users don't have to remember 15 different virt parameters!
</div>

<div class="slide">
We have a Web UI...</br>
<IMG SRC="screenshot.png"/>
</div>

<div class="slide">
For Developers:
<ul>
<li>Python API</li>
<li>XMLRPC API</li>
<li>Triggers system for hooking in with other software</li>
<li>User extensible authn/authz</li> 
</ul>
</div>

<div class="slide">
Release cycle:
<ul>
<li>Relatively fast moving due to lots of contributors</li>
<li>All code kept in git</li>
<li>Kernel versioning scheme, odd=development, even=stable</li>
<li>Current stable is 1.4.X</li>
<li>Stable dot releases on current branch as needed</li>
<li>New major releases every 2-3 months, ideally 1-2 months</li>
</ul>

Future roadmap and plans:
<ul>
<li>Better cross-distro support for non-homogenous environments</li>
<li>Keeping up with virtualization developments</li>
<li>Continual web app improvements</li>
<li>Integration with other config management systems?</li>
<li>All the great ideas people have shared in Trac.</li>
<li>World domination -- be THE go to install server for any OS</li>
</ul>

</div>

<div class="slide">
Want to Learn More?
<ul>
<li>Lots of documentation: <A HREF="http://fedorahosted.org/cobbler">fedorahosted.org/cobbler</A></li>
<li>Active mailing list: <A HREF="https://fedorahosted.org/mailman/listinfo/cobbler">mailing list</A></li>
<li>IRC channel: #cobbler, irc.freenode.net</li>
</ul>

</body>
</html>
